package com.example.backend.entity;


import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 统一API响应结构
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ResponseMessage implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 状态码，如 200 成功，500 错误等
     */
    private Integer code;
    /**
     * 响应描述信息
     */
    private String message;
    /**
     * 返回的数据对象
     */
    private Object data;



    /**
     * 构建成功的响应
     * @param data 返回数据
     * @return 响应对象
     */
    public static ResponseMessage success(Object data) {

        return new ResponseMessage(200, "success", data);
    }
    /**
     * 构建失败的响应
     * @return 响应对象
     */
    public static ResponseMessage error() {

        return new ResponseMessage(500, "error", null);
    }

    /**
     * 构建失败的响应
     * @param code 状态码
     * @param message 描述信息
     * @return 响应对象
     */

    public static ResponseMessage error(Integer code, String message) {
        return new ResponseMessage(code, message, null);
    }
    /**
     * 自定义响应
     * @param code 状态码
     * @param message 描述信息
     * @param data 数据体
     * @return 响应对象
     */
    public static ResponseMessage of(Integer code, String message, Object data) {
        return new ResponseMessage(code, message, data);
    }


}

